/*******************************************************************************
 * Copyright (c) 2013 INTERAMERICAN PROPERTY AND CASUALTY INSURANCE COMPANY S.A. 
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the GNU Lesser Public License v3
 * which accompanies this distribution, and is available at
 * http://www.gnu.org/copyleft/lesser.html
 * 
 * This library is distributed in the hope that it will be useful, 
 * but WITHOUT ANY WARRANTY; without even the implied warranty of 
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
 * See the GNU Lesser General Public License for more details.
 ******************************************************************************/
package gr.interamerican.bo2.creation.update;

import javassist.CannotCompileException;
import javassist.CtClass;
import javassist.CtMethod;

/**
 * Updates a type by adding methods.
 */
public class AddingMethodsClassUpdater 
extends AbstractClassUpdater {
			
	/**
	 * methods
	 */
	private String[] methods;

	/**
	 * Creates a new AddingMethodsClassUpdater object. 
	 *
	 * @param methods
	 */
	public AddingMethodsClassUpdater(String[] methods) {
		super();
		this.methods = methods;
	}

	
	@Override
	public void updateType(CtClass typeToUpdate) 
	throws CannotCompileException {
		for(String methodCode : methods) {			
			typeToUpdate.addMethod(CtMethod.make(methodCode, typeToUpdate));
		}
	}

}
